﻿using System;
using System.Collections.Generic;

using System.Text;

namespace Rance.Battle
{
    class 舍生取义1 : 主动技能
    {
        public int Level = 3;
        public 舍生取义1()
        {
            this.技能速度 = 75;
            this.消耗行动点 = Battle.消耗行动点.一点;
            this.技能目标 = Battle.技能目标.除自己以外己方任一;
            this.技能站位要求 = Battle.技能站位要求.无;
        }

        public override void Excute(技能环境 环境)
        {
            base.Excute(环境);

            var 诅咒 = new 赋予()
            {
                Level = -1,
                是否单回合 = false
            };

            if( 环境.施放者.Set防御诅咒(诅咒))
            {
                角色Struct 释放者 = new Battle.角色Struct() { ID = 环境.施放者.ID, Name = 环境.施放者.Name };
                诅咒Behavior 诅咒Behavior = new Battle.诅咒Behavior();
                诅咒Behavior.List.Add(new 诅咒BehaviorDetail() { 角色 = 释放者, List = new List<string>() { "防御" } });
                环境.行动结果.ResultList.Add(诅咒Behavior);
            }
            

            var 赋予 = new 赋予()
            {
                Level = Level,
                是否单回合 = false
            };

            角色Struct 目标 = new Battle.角色Struct() { ID = 环境.目标List[0].ID, Name = 环境.目标List[0].Name };
            赋予Behavior 赋予Behavior = new Battle.赋予Behavior();
            List<string> list = new List<string>();
            赋予Behavior.List.Add(new 赋予BehaviorDetail() { 角色 = 目标, List = list });
            环境.行动结果.ResultList.Add(赋予Behavior);

            if (环境.目标List[0].Set防御赋予(赋予))
                list.Add("防御");
            if (环境.目标List[0].Set速度赋予(赋予))
                list.Add("速度");
        }
    }

    class 舍生取义2 : 舍生取义1
    {
        public 舍生取义2()
        {
            Level = 4;
        }
    }

    class 舍生取义3 : 舍生取义1
    {
        public 舍生取义3()
        {
            Level = 5;
        }
    }
}
